package top.zywork.vo;

import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户订单扩展类<br/>
 *
 * 创建于2019-07-17<br/>
 *
 * @author http://zywork.top 危锦辉
 * @version 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class UserGoodsOrderExVO extends BaseVO {

    private static final long serialVersionUID = -9223372036176260568L;

    /*
	 * t_user表的字段对应的属性
	 */
	/**
	 * 用户编号
	 */
	private Long userId;
	/**
	 * 手机号
	 */
	@Size(min = 0, max = 11, message = "必须小于11个字符")
	private String userPhone;
	/*
	 * t_user_detail表的字段对应的属性
	 */
	/**
	 * 昵称
	 */
	@Size(min = 0, max = 20, message = "必须小于20个字符")
	private String userDetailNickname;
	/**
	 * 头像地址
	 */
	@Size(min = 0, max = 500, message = "必须小于500个字符")
	private String userDetailHeadicon;
	/*
	 * t_goods_shop表的字段对应的属性
	 */
	/**
	 * 店铺编号
	 */
	private Long goodsShopId;
	/**
	 * 店铺Logo
	 */
	private String goodsShopLogo;
	/**
	 * 店铺标题
	 */
	private String goodsShopTitle;
	/*
	 * t_goods_order表的字段对应的属性
	 */
	/**
	 * 订单编号
	 */
	@NotNull(message = "此项是必须项")
	private Long goodsOrderId;
	/**
	 * 订单号
	 */
	@NotBlank(message = "此项是必须项")
	@Size(min = 1, max = 50, message = "必须是1-50个字符")
	private String goodsOrderOrderNo;
	/**
	 * 订单金额（元）
	 */
	@NotNull(message = "此项是必须项")
	private BigDecimal goodsOrderTotalAmount;
	/**
	 * 实付金额（元）
	 */
	@NotNull(message = "此项是必须项")
	private BigDecimal goodsOrderPayAmount;
	/**
	 * 优惠金额（元）
	 */
	@NotNull(message = "此项是必须项")
	private BigDecimal goodsOrderDiscountAmount;
	/**
	 * 赠送积分
	 */
	@NotNull(message = "此项是必须项")
	private Long goodsOrderIntegralAmount;
	/**
	 * 运费（元）
	 */
	private BigDecimal goodsOrderExpressFee;
	/**
	 * 订单状态
	 */
	@NotNull(message = "此项是必须项")
	private Byte goodsOrderOrderStatus;
	/**
	 * 支付时间
	 */
	private Date goodsOrderPayTime;
	/**
	 * 支付方式
	 */
	private Byte goodsOrderPayType;
	/**
	 * 支付订单号
	 */
	@Size(min = 0, max = 50, message = "必须小于50个字符")
	private String goodsOrderTransactionNo;
	/**
	 * 是否支付成功
	 */
	private Byte goodsOrderPaySuccess;
	/**
	 * 发货时间
	 */
	private Date goodsOrderDeliverTime;
	/**
	 * 成交时间
	 */
	private Date goodsOrderDealTime;
	/**
	 * 订单备注
	 */
	@Size(min = 0, max = 255, message = "必须小于255个字符")
	private String goodsOrderRemark;
	/**
	 * 版本号
	 */
	private Integer goodsOrderVersion;
	/**
	 * 创建时间
	 */
	private Date goodsOrderCreateTime;
	/**
	 * 更新时间
	 */
	private Date goodsOrderUpdateTime;
	/**
	 * 是否激活
	 */
	private Byte goodsOrderIsActive;
	/**
	 * 订单项
	 */
	private List<UserGoodsOrderItemVO> userGoodsOrderItemVOList;

	
}
